package com.algorithmicTest1;

public class InsertTest {
    public static void main(String[] args) {
        //实现插入排序(理解为类似打扑克牌洗牌)
        //首先创建数组找到无序以及有序
        int[] arr = {9,3,4,7,3,3,2,41,41,3,24,1,43,41,43,14};
        //首先去找有序：
        //有序只能从索引0开始：

        //1首先默认索引为-1即所目前还没有符合需求的索引
        int result = -1;
        //这一步是在找无序的位置索引从哪里开始
        for (int i = 0; i < arr.length - 1; i++) {
            if(arr[i] > arr[i+1]){
                result = i + 1;
                break;
            }
        }
        if(result == -1){
            System.out.println("数组已经是升序不需要修改：");
            return;
        }
        //9,3,4,5,7,8,9,41,41,3,24,1,43,41,43,14
       //现在找到了无序位置的索引，从无序位置开始往有序位置插入：
        for (int i = result; i < arr.length; i++) {
            int Index = i;//记录当前索引的位置：

            //这一步是如果当前元素比前一个元素小，就进行交换：
            while(Index > 0 && arr[Index] < arr[Index-1]){

                    int temp = arr[Index-1];
                    arr[Index-1] = arr[Index];
                    arr[Index] = temp;
                    Index--;
            }
        }

        bianLi(arr);
    }
    public static  void bianLi(int[]arr){
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }
}
